﻿using SportsPlatform.Dto.PermissionManagement.FunctionInfo;
using SportsPlatform.Base;
using SportsPlatform.Query.PermissionManagement.BaseQuery;
using SportsPlatform.Query.PermissionManagement.FunctionInfo;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace SportsPlatform.PermissionManagement.IPermissionManagement
{
    /// <summary>
    /// 功能信息表
    /// </summary>
    public  interface IFunctionInfoService
    {
        /// <summary>
        /// 根据Id查询信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultDto<GetFunctionInfoDto>> GetFunctionInfo(DeleteOrGetModelQuery query);

        /// <summary>
        /// 分页获取信息List
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<PagePagingDto<GetFunctionInfoDto>> GetFunctionInfoList(GetFunctionInfoQuery query);


        /// <summary>
        /// 分页获取所有的下级List
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultListDto<GetFunctionInfoTreeDto>> GetFunctionInfoChildList(GetFunctionInfoTreeQuery query);

        /// <summary>
        /// 新增信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<BaseResultDto> AddFunctionInfo(AddFunctionInfoQuery query);

        /// <summary>
        /// 更新信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<BaseResultDto> UpdateFunctionInfo(UpdateFunctionInfoQuery query);

        /// <summary>
        /// 根据Id删除信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<BaseResultDto> DeleteFunctionInfo(DeleteOrGetModelQuery query);

        /// <summary>
        /// 批量/单个修改状态
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<BaseResultDto> FunctionInfoBatchChangeOfStatus(FunctionInfoBatchChangeOfStatusQuery query);
    }
}
